// hbuilderX 发行uniapp微信小程序报错[ app.json 文件内容错误] app.json: 未找到 ["sitemapLocation"] 对应的 sitemap.json 文件
// 在unpackage/dist/mp-weixin/project.config.json增加代码 
"miniprogramRoot": "./unpackage/dist/dev/mp-weixin/",
// uni-app遮罩层禁止滑动穿透
@click.stop=""  // 阻止滚动穿透事件
@touchmove.stop="" // 阻止点击冒泡事件
<view  @click.stop="" @touchmove.stop=""></view>
// 1. 返回上一页并刷新数据
// （一） uni.navigateBack({
	success: () => {
		let page = getCurrentPages().pop(); // 跳转页面成功之后
		if (!page) {
			return;
		} else {
			page.onLoad(page.options); // page自带options对象.
		}
	}
});

uni.navigateBack({
	delta: 1,
	success: function() {
		let page = getCurrentPages().pop(); //跳转页面成功之后
		if (!page) return;
		page.onLoad(page.options); //如果页面存在，则重新刷新页面
	}
});
// （二） // 配合onShow使用
onShow() {
	this.xxx()
}

// 2. 返回上一页并刷新数据
/*  uni.$emit、$on、$off、$once常用于跨页面、跨组件通讯
    uni.$emit、uni.$on、uni.$once、uni.$off 触发的事件都是 App全局级别的，
    跨任意组件，页面，nvue，vue等使用时，注意及时销毁事件监听，比如，
    页面 onLoad里边 uni.$on注册监听，onUnload里边uni.$off移除监听.
    一次性的事件，直接使用 uni.$once 监听 */

// （一）详情页(detail.vue)：
methods: {
	back() {
		uni.$emit('refreshData');
		uni.navigateBack({
			delta: 1
		})
	}
}

// （二）列表页(list.vue)
onLoad() {
	// 正常进入该页面的获取数据
	this.getData();
	// 从详情页返回该页面的获取数据， 监听事件  
	uni.$on('refreshData', () => {
		this.getData();
	})
},
// onunload 事件在用户退出页面时发生。
onUnload() {
	// 移除监听事件  
	uni.$off('refreshData');
},
methods: {
	getData() {} // 请求数据接口
}


// 小程序全局函数
globalData: {
		text: '',
		clickA() {
			console.log('开启定时器----------------------0');
		},
	},
	// 调用小程序全局函数
	getApp().globalData.closeScheduledTask() // 关闭定时任务
getApp().globalData.clickA() // 关闭定时任务
// 调取全局方法
getApp().xxx() // 直接调取methods的方法名字

// 小程序版本更新提示
// uni-app中小程序的强制更新
export default {
	onLaunch: function(options) {
		this.upateApp() // 冷启动
	},
	onShow: function() { // 热启动
		console.log('App Show')
	},
	onHide: function() {
		console.log('App Hide')
	},
	methods: {
		upateApp() {
			//新版本更新
			if (uni.canIUse('getUpdateManager')) { // 判断应用的 API，回调，参数，组件等是否在当前版本可用。
				console.log('判断应用的 API 是否在当前版本可用-------', uni.canIUse('getUpdateManager'));
				//判断当前微信版本是否支持版本更新
				const updateManager = uni.getUpdateManager();
				updateManager.onCheckForUpdate(function(res) {
					console.log('检查是否有新版本-------', res);
					if (res.hasUpdate) {
						// 请求完新版本信息的回调
						updateManager.onUpdateReady(function() {
							uni.showModal({
								title: '更新提示',
								content: '新版本已经准备好，是否重启应用？',
								success: function(res) {
									if (res.confirm) {
										// 新的版本已经下载好，调用 applyUpdate 应用新版本并重启
										updateManager.applyUpdate();
									} else if (res.cancel) {
										//用户点击取消按钮的处理，如果需要强制更新，则给出二次弹窗，如果不需要，则这里的代码都可以删掉了
										uni.showModal({
											title: '温馨提示',
											content: '本次版本更新涉及到新的功能添加，旧版本无法正常访问的哦',
											// showCancel: false, //隐藏取消按钮
											confirmText: '确定更新', //只保留确定更新按钮
											success: function(res) {
												if (res.confirm) {
													//下载新版本，并重新应用
													updateManager.applyUpdate();
												}
											}
										});
									}
								}
							});
						});
						updateManager.onUpdateFailed(function() {
							uni.showModal({
								// 新的版本下载失败
								title: '已经有新版本了哟',
								content: '新版本已经上线啦，请您删除当前小程序，重新搜索打开哟~'
							});
						});
					} else {}
				});
			} else {
				uni.showModal({
					// 如果希望用户在最新版本的客户端上体验您的小程序，可以这样子提示
					title: '提示',
					content: '当前微信版本过低，无法使用该功能，请升级到最新微信版本后重试。'
				});
			}
		}
	},
}



// 小程序数字键盘
<
input type = "digit" / >
	number： 数字键盘（ 无小数点）
idcard： 数字键盘（ 无小数点、 有个 X 键）
digit： 数字键盘（ 有小数点）
注意： number 是无小数点的， digit 是有小数点的
